package com.cjh.scala

/**
 * Created by Administrator on 2016/6/10 0010.
 */
class Basic {

}

object Basic {
  def main(args: Array[String]) {
    //    println(hello("scala"))
    //    helloScala //函数没有参数的时候就可以不加括号调用
    //    println(add(2,3))
    //    printEachChar("a","bbb","c")
    //    println(default())
    //    val a=1
    //    val x=if(a>0) "yes" else "no" //条件判断以一种优雅的形式对变量赋值
    //    println(x)
    //        var (r,n)=(0,10) //多个变量赋初值
    //        while (n>0){
    //          r=r+n
    //          n=n-1
    //        }
    //        println(r)

    //    for(i<- 1 to 10 ){ // Scala中  a.b(xxx) 等价于  a b xxx
    //      print(i+" ")
    //    }

    //    for(i<- 1 until 10){ //until不包尾
    //      println(i+" ")
    //    }

    //    for(i<- 1 to 10 if(i%2==0)){ //for循环中直接加上条件判断  思考如何实现break和continue
    //      println(i+" ")
    //    }

  }

  //最后一行的值就是返回值
  def hello(name: String): String = {
    "hello" + name
  }

  //  def add=(x:Int,y:Int)=>x+y //(x:Int,y:Int)=>x+y 是一个匿名函数
  val add = (x: Int, y: Int) => x + y //Scala中函数式第一等公民，可直接将其赋值给变量
  //没有返回值的函数，可以直接将函数赋给常量 可以加括号也可以不加
  def helloScala() {
    println("Hello Scala!!!")
  }

  //柯里化函数
  def add2(x: Int)(y: Int) = x + y

  //*表示可以传入多个参数
  def printEachChar(c: String*) {
    c.foreach(x => println(x))
  }

  //可以设置传入参数的默认值
  def default(x: String = "Scala"): String = {
    "Hello" + x
  }


}
